<?php


namespace Part18_MemoMode\Code2;

require_once '../../autoload.php';

// originator初始状态，状态属性为 on
$o = new Originator();
$o->setState('on');
$o->show();

// 保存状态时，由于有了很好的封装，可以隐藏originator的实现细节
$c = new Caretaker();
$c->setMemento($o->createMemento());


// 改变了属性为 off
$o->setState('off');
$o->show();

// 恢复原始状态
$o->setMemento($c->getMemento());
$o->show();

